/*
 * 文件名：UserDaoImp.java
 * 版权：Copyright by www.wootide.com
 * 描述：
 * 修改人：ozm
 * 修改时间：2013-1-24
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */
package com.wootide.cms.service.reservation.payment.dao.imp;

import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.wootide.cms.log.syslog.RunLog;
import com.wootide.cms.service.reservation.payment.dao.PaymentMethodsInfoDao;
import com.wootide.cms.service.reservation.payment.pojo.PaymentMethodsInfo;
/**
 * 支付方式数据访问曾实现层
 * 〈一句话功能简述〉
 * 〈功能详细描述〉
 * @author ozm
 * @version 2013-1-25
 * @see PaymentMethodsInfoDao
 * @since 2013-1-25上午10:03:07
 */
public class PaymentMethodsInfoDaoImp extends HibernateDaoSupport implements PaymentMethodsInfoDao
{
    
    private RunLog runLog;
    
    //    /**
    //     * 添加一个用户
    //     * Description: <br>
    //     * Implement: <br>
    //     * @param userInfo 新增的用户信息
    //     * @see
    //     * @return void
    //     * @author ozm
    //     */
    //    public void addOneUser(UserInfo userInfo)
    //    {
    //       this.getHibernateTemplate().save(userInfo);
    //        
    //    }
    //
    //    /**
    //     * 修改一个用户
    //     * Description: <br>
    //     * Implement: <br>
    //     * @param userInfo 需要修改的用户信息
    //     * @see
    //     * @return void
    //     * @author ozm
    //     */
    //    public void modOneUser(UserInfo userInfo)
    //    {
    //        this.getHibernateTemplate().update(userInfo);
    //        
    //    }
    //
    //    /**
    //     * 删除一个用户
    //     * Description: <br>
    //     * Implement: <br>
    //     * @param userInfo 需要删除的用户信息
    //     * @see
    //     * @return void
    //     * @author ozm
    //     */
    //    public void delOneUser(UserInfo userInfo)
    //    {
    //        this.getHibernateTemplate().delete(userInfo);
    //        
    //    }
    
   
    
    /**
     * 通过支付方式名获取支付方式信息
     * Description: <br>
     * Implement: <br>
     * @param paymentMethodsName 指定的支付方式
     * @see
     * @return PaymentMethodsInfo 根据支付方式名称查询到的支付方式信息
     * @author ozm
     */
    public PaymentMethodsInfo findOnePaymentMethodsByName(String paymentMethodsName)
    {
        runLog.debug("paymentMethodsName=" + paymentMethodsName);
        List list = getHibernateTemplate().findByNamedQuery("findOnePaymentMethodsByName",paymentMethodsName);
        
        return list.isEmpty() ? null : (PaymentMethodsInfo)list.get(0);
    }
    
    /**
     * 
     * Description: 查询指定支付方式名的支付方式信息数
     * Implement: <br>
     * @param paymentMethodsName 指定的支付方式名
     * @see
     * @return int 
     * @author ozm2013-1-29下午4:49:21
     */
    public int findNumByPaymentMethodsByName(String paymentMethodsName)
    {
        runLog.debug("paymentMethodsName=" + paymentMethodsName);
        
        return ((Number)getHibernateTemplate().findByNamedQuery("findPaymentMethodsNumByName",
                paymentMethodsName)
                .get(0)).intValue();
    }
    
    /**
     * 
     * Description: 通过支付方式ID获取支付方式信息
     * Implement: <br>
     * @param paymentMethodsId 支付方式ID
     * @see
     * @return PaymentMethodsInfo 要获取的支付方式信息
     * @author ozm2013-1-30上午10:21:23
     */
    public PaymentMethodsInfo  findOnePaymentMethodsByPaymentMethodsId(Integer paymentMethodsId)
    {
        runLog.debug("orderById=" + paymentMethodsId);
        return this.getHibernateTemplate().get(PaymentMethodsInfo.class, paymentMethodsId);
    }
    
    /**
     * 查询所有的支付方式
     * Description: <br>
     * Implement: <br>
     * @return
     * @see
     * @return List 所有支付方式集合
     * @author ozm2013-3-26下午6:53:45
     */
    @SuppressWarnings("rawtypes")
    public List findAllPaymentMethods()
    {
        return getHibernateTemplate().find("from PaymentMethodsInfo p");
    }
    
    public RunLog getRunLog()
    {
        return runLog;
    }
    
    public void setRunLog(RunLog runLog)
    {
        this.runLog = runLog;
    }

    
}
